const express = require("express");
const app = express();

/* 导入两个对象 */
/* 1、导入 */
var xml2js = require('xml2js');
/* 2、创建xml->js对象 */
var parser = new xml2js.Parser({
    explicitArray: false
});
/* 3、创建 js->xml对象 */
var builder = new xml2js.Builder({
    rootname: "xml",
    cdata: true,
    headless: true
})


app.get('/', (req, res) => {
    console.log(req.query);
    res.send(req.query.echostr);
})
app.post('/', (req, res) => {
    /* 获取数据  数据流事件监听 */
     /* 获取数据  数据流事件监听 */
    /*  var bufferList=null;
     req.on("data",function(buffer){
        bufferList+=buffer
     })
     req.on("end",function(){
         console.log(bufferList)
     }) */
    var bufferList = [];
    req.on("data", function (buffer) {
        bufferList.push(buffer);
    })
    req.on("end", function () {
        var result = Buffer.concat(bufferList);
        /* 获取微信服务器发来的消息数据  使用xml2js转换成js对象 */
        parser.parseString(result.toString(), (err, result) => {
            console.log(result, 88);
            /* 声明一个变量用来保存我们要回复给用户的消息 */
            var msg = '';
            if(result.xml.MsgType == "text"){
                switch(result.xml.Content){
                    case "1": 
                        msg = "你好，很高兴认识你";
                        break;
                    case "2":
                        msg = "Hello, Nice to meet you";
                        break;
                    case "3":
                        msg = "aniasiyo"
                        break;
                    default: 
                        msg = "请选择您的语言：1. 汉语 2. 英语 3. 日语"
                }
            };

            /* 将最终要回复给用户的信息  响应给微信服务器 */
            /* 这个消息也是以xml格式进行发送的 */
            /* 
            { xml:
                {   ToUserName: 'gh_3ec8e236dc1c',
                    FromUserName: 'o13wWwXHgPZHj5Oz_cEfAD154Uec',
                    CreateTime: '1534995701',
                    MsgType: 'text',
                    Content: '4',
                    MsgId: '6592756335714395352' } } 
            <xml>
            */
           var returnMsg={
                ToUserName: result.xml.FromUserName,  //开发者微信号
                FromUserName: result.xml.ToUserName,  //发送方帐号（一个OpenID）
                CreateTime: +new Date(),
                MsgType: 'text',
                Content: msg,
           };

           /* 响应给用户 */
           res.send(builder.buildObject(returnMsg));
        })
    }) 
})
app.listen('80', () => {
    console.log("http://echo.free.idcfengye.com");
})